-- @Author              : GGELUA
-- @Last Modified by    : baidwwy
-- @Date                : 2022-03-23 10:09:27
-- @Last Modified time  : 2022-04-27 01:30:45
if gge.isdebug and os.getenv('LOCAL_LUA_DEBUGGER_VSCODE') == '1' then
    package.loaded['lldebugger'] = assert(loadfile(os.getenv('LOCAL_LUA_DEBUGGER_FILEPATH')))()
    require('lldebugger').start()
end
local SDL = require('SDL')
引擎 =
    require 'SDL.窗口' {
    标题 = 'GGELUA_异形窗口',
    宽度 = 800,
    高度 = 600,
    帧率 = 60,
    渲染器 = 'software',
    异形 = true
}

function 引擎:初始化()
    local sf = require('SDL.图像')('assets/uin2.png')
    --sf:置透明色(255, 0, 255)
    print(self:置图像(sf))
    spr = require('SDL.精灵')('assets/uin2.png')
end

function 引擎:更新事件(dt, x, y)
end

function 引擎:渲染事件(dt, x, y)
    if self:渲染开始(0x70, 0x70, 0x70) then
        spr:显示(0, 0)
        self:渲染结束()
    end
end

function 引擎:窗口事件(ev)
    if ev == SDL.WINDOWEVENT_CLOSE then
        引擎:关闭()
    end
end

function 引擎:键盘事件(KEY, KMOD, 状态, 按住)
    if not 状态 then --弹起
        if KEY == SDL.KEY_ESCAPE then
            引擎:关闭()
        end
    end
    if KMOD & SDL.KMOD_LCTRL ~= 0 then
        print('左CTRL', 按住)
    end
    if KMOD & SDL.KMOD_ALT ~= 0 then
        print('左右ALT', 按住)
    end
end

function 引擎:鼠标事件(消息, x, y, key)
    if 消息 == SDL.MOUSE_DOWN then
        self.按下偏移 = require('GGE.坐标')(x, y)
        local _, gx, gy = SDL.GetGlobalMouseState()
        self.按下位置 = require('GGE.坐标')(gx, gy)
    elseif 消息 == SDL.MOUSE_MOTION and key & SDL.BUTTON_LEFT == SDL.BUTTON_LEFT then
        local _, gx, gy = SDL.GetGlobalMouseState()

        self:置坐标(require('GGE.坐标')(gx, gy) - self.按下偏移)
    end
end

function 引擎:输入事件()
end

function 引擎:销毁事件()
end
